define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
    var Controller = {
        index: function () {
            // 绑定事件
            $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
                var panel = $($(this).attr("href"));

                if (panel.length > 0) {
                    Controller.table[panel.attr("id")].call(this);

                    $(this).on('click', function (e) {
                        $($(this).attr("href")).find(".btn-refresh").trigger("click");
                    });
                }

                //移除绑定的事件
                $(this).unbind('shown.bs.tab');
            });

            //必须默认触发shown.bs.tab事件
            $('ul.nav-tabs li.active a[data-toggle="tab"]').trigger("shown.bs.tab");
        },
        table: {
            //课程订单
            order: function () {
                //接收进入到详情界面的id值
                var ids = Fast.api.query('ids');

                // 初始化表格参数配置
                //配置整个表格中增删查改请求控制器地址，用的ajax的方式请求
                Table.api.init({
                    extend: {
                        order_url: `subject/info/order?ids=${ids}`,
                        table: 'subject_order',
                    }
                });

                //获取view视图里面的dom元素table元素
                var OrderTable = $("#OrderTable")

                //渲染列表数据
                OrderTable.bootstrapTable({
                    url: $.fn.bootstrapTable.defaults.extend.order_url, //请求地址
                    toolbar: "#OrderToolbar", //工具栏
                    pk: 'id', //默认主键字段名
                    sortName: 'createtime', //排序的字段名
                    sortOrder: 'desc', //排序的方式
                    columns: [ //渲染的字段部分
                        { field: 'id', title: 'ID', operate: false, sortable: true },
                        { field: 'code', title: __('OrderCode'), operate: 'LIKE' },
                        { field: 'total', title: __('OrderTotal'), operate: false, sortable: true },
                        { field: 'business.nickname', title: __('BusinessNickname'), operate: 'LIKE' },
                        {
                            field: 'createtime',
                            title: __('OrderTime'),
                            operate: 'RANGE',
                            addclass: 'datetimerange',
                            sortable: true,
                            formatter: Table.api.formatter.datetime
                        },
                    ]
                })

                // 为表格绑定事件
                Table.api.bindevent(OrderTable);
            },
            //课程评论
            comment: function () {
                //接收进入到详情界面的id值
                var ids = Fast.api.query('ids');

                // 初始化表格参数配置
                //配置整个表格中增删查改请求控制器地址，用的ajax的方式请求
                Table.api.init({
                    extend: {
                        comment_url: `subject/info/comment?ids=${ids}`, //评论
                        table: 'subject_comment',
                    }
                });

                //获取view视图里面的dom元素table元素
                var CommentTable = $("#CommentTable")

                //渲染列表数据
                CommentTable.bootstrapTable({
                    url: $.fn.bootstrapTable.defaults.extend.comment_url, //请求地址
                    toolbar: "#CommentToolbar", //工具栏
                    pk: 'id', //默认主键字段名
                    sortName: 'createtime', //排序的字段名
                    sortOrder: 'desc', //排序的方式
                    columns: [ //渲染的字段部分
                        { field: 'id', title: 'ID', operate: false, sortable: true },
                        { field: 'business.nickname', title: __('BusinessNickname'), operate: 'LIKE' },
                        { field: 'content', title: __('CommentContent'), operate: 'LIKE' },
                        {
                            field: 'createtime',
                            title: __('CommentTime'),
                            operate: 'RANGE',
                            addclass: 'datetimerange',
                            sortable: true,
                            formatter: Table.api.formatter.datetime
                        },
                    ]
                })

                // 为表格绑定事件
                Table.api.bindevent(CommentTable);
            },
        },
        api: {
            bindevent: function () {
                Form.api.bindevent($("form[role=form]"));
            }
        }
    }

    return Controller
})
